সি# এ ফাইল হ্যান্ডলিং ব্যবহার করে ফাইল তৈরি করা, পড়া, লেখা, মুছে ফেলা, এবং ফাইল সংক্রান্ত বিভিন্ন কার্যক্রম সম্পন্ন করা যায়। সি# এ ফাইল হ্যান্ডলিং এর জন্য System.IO
নেমস্পেস ব্যবহার করা হয়, যা ফাইল এবং ডিরেক্টরি সম্পর্কিত অনেক ক্লাস এবং মেথড সরবরাহ করে।
File
ক্লাসের মতো কাজ করে, তবে এটি অবজেক্ট-ওরিয়েন্টেড অ্যাপ্রোচ ব্যবহার করে।নিচের উদাহরণটি একটি ফাইল তৈরি করে এবং কিছু লেখে।
using System;
using System.IO;
public class Program
{
public static void Main()
{
// ফাইল তৈরি এবং লেখার জন্য File.WriteAllText ব্যবহার
string filePath = "example.txt";
string content = "Hello, this is a sample text.";
File.WriteAllText(filePath, content);
Console.WriteLine("File created and content written successfully.");
}
}
ফাইল থেকে ডেটা পড়তে File.ReadAllText
বা StreamReader
ব্যবহার করা হয়।
using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
// ফাইল থেকে ডেটা পড়া
if (File.Exists(filePath))
{
string content = File.ReadAllText(filePath);
Console.WriteLine("File Content: " + content);
}
else
{
Console.WriteLine("File does not exist.");
}
}
}
ফাইলে নতুন কনটেন্ট যোগ করতে File.AppendAllText
বা StreamWriter
ব্যবহার করা হয়।
using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
string contentToAdd = "\nThis is appended text.";
// ফাইলে ডেটা যোগ করা (Append)
File.AppendAllText(filePath, contentToAdd);
Console.WriteLine("Content appended to file successfully.");
}
}
File.Delete
ব্যবহার করে কোনো নির্দিষ্ট ফাইল মুছে ফেলা যায়।
using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
// ফাইল মুছে ফেলা
if (File.Exists(filePath))
{
File.Delete(filePath);
Console.WriteLine("File deleted successfully.");
}
else
{
Console.WriteLine("File does not exist.");
}
}
}
StreamReader এবং StreamWriter ক্লাসগুলো বড় ডেটা পড়া এবং লেখার জন্য অনেক বেশি কার্যকর। এগুলো using
ব্লক ব্যবহার করে লেখা হয় যাতে অবজেক্টের জীবনকাল শেষে স্বয়ংক্রিয়ভাবে রিসোর্স মুক্ত করা হয়।
using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
// StreamWriter দিয়ে ফাইলে লেখা
using (StreamWriter writer = new StreamWriter(filePath))
{
writer.WriteLine("This is line 1.");
writer.WriteLine("This is line 2.");
}
Console.WriteLine("Content written using StreamWriter.");
}
}
using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
// StreamReader দিয়ে ফাইল পড়া
if (File.Exists(filePath))
{
using (StreamReader reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
else
{
Console.WriteLine("File does not exist.");
}
}
}
ফাইল হ্যান্ডলিং কার্যক্রমের সময় এক্সেপশন ঘটার সম্ভাবনা থাকে, যেমন ফাইল পাওয়া না গেলে বা অনুমতি সংক্রান্ত সমস্যা হলে। এজন্য try-catch ব্লক ব্যবহার করা হয়।
using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
try
{
if (File.Exists(filePath))
{
string content = File.ReadAllText(filePath);
Console.WriteLine("File Content: " + content);
}
else
{
Console.WriteLine("File does not exist.");
}
}
catch (Exception ex)
{
Console.WriteLine("An error occurred: " + ex.Message);
}
}
}
সি# এ ফাইল হ্যান্ডলিং এর মাধ্যমে ফাইল তৈরি, লেখা, পড়া, মুছে ফেলা ইত্যাদি কার্যক্রম সম্পন্ন করা যায়। System.IO
নেমস্পেসের File
, FileInfo
, StreamReader
, এবং StreamWriter
ক্লাসগুলো ফাইল হ্যান্ডলিং এ বিশেষ ভূমিকা পালন করে। try-catch ব্লক ব্যবহার করে ফাইল হ্যান্ডলিং কার্যক্রমকে আরও নিরাপদ করা যায়।
সি# এ ফাইল তৈরি, পড়া এবং লেখার জন্য System.IO
নামক লাইব্রেরি ব্যবহৃত হয়। এই লাইব্রেরিতে থাকা বিভিন্ন ক্লাস এবং মেথড ফাইল পরিচালনা সহজ করে তোলে। এখানে ফাইল তৈরি, পড়া এবং লেখার প্রক্রিয়া বিস্তারিতভাবে আলোচনা করা হয়েছে।
ফাইল তৈরি করতে File
বা FileStream
ক্লাস ব্যবহার করা যায়। File.Create
মেথড ব্যবহার করে সহজেই একটি ফাইল তৈরি করা সম্ভব।
using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
// ফাইল তৈরি করা
if (!File.Exists(filePath))
{
File.Create(filePath).Close();
Console.WriteLine("File created successfully.");
}
else
{
Console.WriteLine("File already exists.");
}
}
}
এখানে:
File.Exists(filePath)
: চেক করে যে ফাইলটি ইতিমধ্যে আছে কি না।File.Create(filePath)
: নতুন একটি ফাইল তৈরি করে। Close()
মেথড ফাইলটি বন্ধ করে দেয়, কারণ এটি ফাইল স্ট্রিম খোলা রাখে।ফাইলে লেখা বা ডেটা সংরক্ষণের জন্য StreamWriter
ক্লাস ব্যবহার করা যেতে পারে। StreamWriter
ফাইলটি খোলে এবং নির্দিষ্ট ডেটা ফাইলে লেখার অনুমতি দেয়।
using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
// ফাইলে লেখা
using (StreamWriter writer = new StreamWriter(filePath))
{
writer.WriteLine("Hello, this is a sample text.");
writer.WriteLine("Writing to file in C#.");
}
Console.WriteLine("Data written to file successfully.");
}
}
এখানে:
StreamWriter
ফাইলটি লেখার জন্য খোলে, এবং WriteLine
মেথড ব্যবহার করে ডেটা সংরক্ষণ করে।using
স্টেটমেন্ট StreamWriter
অবজেক্টের জন্য স্বয়ংক্রিয়ভাবে ফাইলটি বন্ধ করে দেয়।ফাইলে লেখা ডেটা পড়ার জন্য StreamReader
ক্লাস ব্যবহার করা হয়। এটি ফাইলের প্রতিটি লাইন পড়ে এবং প্রয়োজন অনুসারে প্রদর্শন করতে পারে।
using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
// ফাইল থেকে পড়া
using (StreamReader reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
}
এখানে:
StreamReader
ফাইলটি পড়ার জন্য খোলে এবং প্রতিটি লাইন ReadLine
মেথড ব্যবহার করে পড়ে।using
ব্লকের মধ্যে ব্যবহার করার ফলে ফাইলটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।File.WriteAllText
এবং File.ReadAllText
যদি পুরো ডেটা একবারে লিখতে বা পড়তে চান, তাহলে File.WriteAllText
এবং File.ReadAllText
ব্যবহার করা যেতে পারে। এটি দ্রুত এবং সহজ পদ্ধতি।
string filePath = "example.txt";
string content = "This is a single line of text written using WriteAllText.";
// ফাইলে লেখা
File.WriteAllText(filePath, content);
Console.WriteLine("Data written using WriteAllText.");
string filePath = "example.txt";
// ফাইল থেকে পড়া
string content = File.ReadAllText(filePath);
Console.WriteLine("Data read using ReadAllText:");
Console.WriteLine(content);
File.Create
ব্যবহার করে ফাইল তৈরি করা যায়।StreamWriter
বা File.WriteAllText
দিয়ে লেখা সম্ভব।StreamReader
বা File.ReadAllText
দিয়ে ফাইল পড়া যায়।সি# এ ফাইল পরিচালনা খুবই সহজ এবং System.IO
লাইব্রেরি ব্যবহার করে এটি আরও সহজতর হয়।
সি# এ StreamReader এবং StreamWriter ক্লাসগুলো ফাইল থেকে ডেটা পড়া এবং ফাইলে ডেটা লেখার জন্য ব্যবহৃত হয়। StreamReader
ফাইলের কনটেন্ট লাইনে লাইনে পড়তে এবং StreamWriter
ফাইলে লেখা সহজ করে তোলে। এগুলো System.IO
নেমস্পেসের অংশ এবং সাধারণত ফাইল হ্যান্ডলিং এ ব্যবহৃত হয়।
StreamWriter ব্যবহার করে ফাইলে ডেটা লেখার জন্য Write
এবং WriteLine
মেথড ব্যবহার করা হয়। StreamWriter
এর সাহায্যে বড় বা একাধিক লাইন ডেটা ফাইলে লিখতে সুবিধাজনক।
using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
// StreamWriter দিয়ে ফাইলে লেখা
using (StreamWriter writer = new StreamWriter(filePath))
{
writer.WriteLine("This is line 1.");
writer.WriteLine("This is line 2.");
writer.WriteLine("This is line 3.");
}
Console.WriteLine("Content written using StreamWriter.");
}
}
StreamWriter
অবজেক্ট writer
তৈরি করা হয়েছে, যা filePath
(example.txt) ফাইলের সাথে সংযুক্ত।writer.WriteLine()
মেথডের মাধ্যমে ফাইলে লাইন বাই লাইন লেখা হয়েছে।using
ব্লক ব্যবহার করা হয়েছে, যা ব্লকের শেষে রিসোর্স মুক্ত করে দেয়।StreamReader ব্যবহার করে ফাইলের ডেটা লাইনে লাইনে পড়া হয়। StreamReader
বড় ফাইলের কনটেন্ট লাইনে লাইনে পড়তে উপযুক্ত।
using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
// StreamReader দিয়ে ফাইল পড়া
if (File.Exists(filePath))
{
using (StreamReader reader = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
else
{
Console.WriteLine("File does not exist.");
}
}
}
StreamReader
অবজেক্ট reader
তৈরি করা হয়েছে, যা filePath
ফাইলের সাথে সংযুক্ত।reader.ReadLine()
মেথড দিয়ে লাইনে লাইনে ডেটা পড়া হচ্ছে। ReadLine
প্রতিটি লাইনের পর নতুন লাইন পাঠ করে এবং নাল হয়ে গেলে লুপ থেকে বের হয়।using
ব্লক ব্যবহার করা হয়েছে, যাতে কাজ শেষে রিসোর্স মুক্ত হয়।ফাইলের শেষে নতুন ডেটা যোগ করার জন্য StreamWriter
এর append
মোড ব্যবহার করা হয়।
using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
// StreamWriter দিয়ে ফাইলে অ্যাপেন্ড করা
using (StreamWriter writer = new StreamWriter(filePath, true)) // true মানে অ্যাপেন্ড মোডে খুলবে
{
writer.WriteLine("This is appended line 1.");
writer.WriteLine("This is appended line 2.");
}
Console.WriteLine("Content appended using StreamWriter.");
}
}
new StreamWriter(filePath, true)
এর true
প্যারামিটার অ্যাপেন্ড মোড সক্রিয় করে।writer.WriteLine()
এর মাধ্যমে ফাইলের শেষে নতুন লাইনগুলো যোগ করা হয়।যদি পুরো ফাইল একবারে পড়তে চান, তাহলে ReadToEnd
মেথড ব্যবহার করতে পারেন।
using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
// StreamReader দিয়ে পুরো ফাইল পড়া
if (File.Exists(filePath))
{
using (StreamReader reader = new StreamReader(filePath))
{
string content = reader.ReadToEnd();
Console.WriteLine(content);
}
}
else
{
Console.WriteLine("File does not exist.");
}
}
}
Write
এবং WriteLine
মেথড ব্যবহার করে।ReadLine
এবং ReadToEnd
মেথড ব্যবহার করে।StreamReader এবং StreamWriter এর মাধ্যমে ফাইল হ্যান্ডলিং করা সহজ হয় এবং এগুলো বড় বা একাধিক লাইনের ফাইল পরিচালনার জন্য অত্যন্ত কার্যকর।
সি# এ ফাইল পরিচালনার জন্য File এবং FileInfo ক্লাস দুটি প্রচলিতভাবে ব্যবহৃত হয়। এ দুটি ক্লাসের ব্যবহার এবং পার্থক্য নিয়ে এখানে আলোচনা করা হলো।
File ক্লাস হলো একটি স্ট্যাটিক ক্লাস যা সরাসরি বিভিন্ন ফাইল অপারেশন (যেমন তৈরি করা, মুছে ফেলা, কপি করা, ইত্যাদি) সম্পাদন করতে ব্যবহৃত হয়। File
ক্লাসে থাকা মেথডগুলো সরাসরি ফাইলের ওপর কাজ করে এবং প্রতিবার কল করার সময় নতুন করে অবজেক্ট তৈরি করা লাগে না।
File ক্লাসের কয়েকটি গুরুত্বপূর্ণ মেথড:
File.Create
- নতুন একটি ফাইল তৈরি করে।File.Delete
- নির্দিষ্ট ফাইল মুছে ফেলে।File.Copy
- ফাইল কপি করে।File.Move
- ফাইল সরিয়ে দেয়।File.Exists
- ফাইল আছে কি না তা পরীক্ষা করে।using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
// ফাইল তৈরি করা এবং লেখা
if (!File.Exists(filePath))
{
File.WriteAllText(filePath, "Hello, this is written using File class.");
Console.WriteLine("File created and data written.");
}
// ফাইল থেকে পড়া
string content = File.ReadAllText(filePath);
Console.WriteLine("Content of the file:");
Console.WriteLine(content);
// ফাইল মুছে ফেলা
File.Delete(filePath);
Console.WriteLine("File deleted.");
}
}
এখানে:
File.WriteAllText
ফাইলে ডেটা লেখার জন্য ব্যবহৃত হয়েছে।File.ReadAllText
ফাইল থেকে ডেটা পড়ে এবং File.Delete
ফাইলটি মুছে দেয়।FileInfo ক্লাস একটি নন-স্ট্যাটিক ক্লাস, যা ফাইলের বিভিন্ন প্রপার্টি এবং মেথড সরবরাহ করে। FileInfo
ক্লাস প্রতিবার একটি নতুন অবজেক্ট তৈরি করে এবং এর মাধ্যমে ফাইলের বিভিন্ন অপারেশন করা হয়। FileInfo
ক্লাস ফাইল সম্পর্কিত বিভিন্ন প্রপার্টি, যেমন - Length
, CreationTime
, Extension
, ইত্যাদি পাওয়ার জন্য কার্যকর।
FileInfo ক্লাসের কয়েকটি গুরুত্বপূর্ণ মেথড:
Create
- নতুন একটি ফাইল তৈরি করে।Delete
- ফাইল মুছে ফেলে।CopyTo
- ফাইল কপি করে।MoveTo
- ফাইল সরিয়ে দেয়।Open
- ফাইলকে পড়া বা লেখার জন্য ওপেন করে।using System;
using System.IO;
public class Program
{
public static void Main()
{
string filePath = "example.txt";
FileInfo fileInfo = new FileInfo(filePath);
// ফাইল তৈরি করা এবং লেখা
if (!fileInfo.Exists)
{
using (StreamWriter writer = fileInfo.CreateText())
{
writer.WriteLine("Hello, this is written using FileInfo class.");
}
Console.WriteLine("File created and data written.");
}
// ফাইল থেকে পড়া
using (StreamReader reader = fileInfo.OpenText())
{
string content = reader.ReadToEnd();
Console.WriteLine("Content of the file:");
Console.WriteLine(content);
}
// ফাইল প্রপার্টি দেখা
Console.WriteLine("File Info:");
Console.WriteLine("File Name: " + fileInfo.Name);
Console.WriteLine("File Size: " + fileInfo.Length + " bytes");
Console.WriteLine("Creation Time: " + fileInfo.CreationTime);
// ফাইল মুছে ফেলা
fileInfo.Delete();
Console.WriteLine("File deleted.");
}
}
এখানে:
FileInfo.CreateText
মেথড ব্যবহার করে ফাইলে লেখা হয়েছে।FileInfo.OpenText
মেথড ব্যবহার করে ফাইল থেকে ডেটা পড়া হয়েছে।fileInfo.Name
, fileInfo.Length
, fileInfo.CreationTime
প্রপার্টির মাধ্যমে ফাইলের নাম, সাইজ এবং তৈরিকৃত সময় দেখা গেছে।বৈশিষ্ট্য | File ক্লাস | FileInfo ক্লাস |
---|---|---|
টাইপ | স্ট্যাটিক ক্লাস | নন-স্ট্যাটিক ক্লাস |
অবজেক্ট তৈরির প্রয়োজন | প্রতিবার মেথড কলের জন্য অবজেক্ট তৈরির প্রয়োজন নেই | প্রতিবার একটি নতুন অবজেক্ট তৈরি করতে হয় |
ফাইল প্রপার্টি | সরাসরি প্রপার্টি ব্যবহার করা যায় না | প্রপার্টি যেমন Length , CreationTime , Extension ইত্যাদি সরাসরি পাওয়া যায় |
ব্যবহার ক্ষেত্র | সরাসরি সাধারণ কাজের জন্য উপযুক্ত | নির্দিষ্ট ফাইলের বিস্তারিত কাজের জন্য উপযুক্ত |
File এবং FileInfo উভয় ক্লাসই ফাইল পরিচালনা করতে সক্ষম, তবে ব্যবহারের ক্ষেত্রে নির্দিষ্ট প্রয়োজন অনুযায়ী ক্লাস নির্বাচন করা উচিত।
আরও দেখুন...